Sharing resources in networked computer systems, such as processors, computer memories, network bandwidth and data storage facilities, can increase efficiency by reducing maintenance and operating costs, allowing flexibility with respect to individual resource usage, and simplifying resource management. With respect to shared storage, the benefits include data consolidation, universal access to data, ease of storage management, and support for live migration of virtualized environments.
A set of hardware computing platforms can be organized as a server cluster to provide computing resources for resource sharing. These server clusters can be organized into one or more data centers that can support multiple virtual machines (VMs) for various operations. For each data center, a resource allocation tool is typically used to monitor resource usage by the VMs in the data center and to dynamically allocate resources to the VMs during operation for various reasons, such as load balancing and increased/decreased workload. In addition, a power management tool can be used to power down and power up servers as needed to significantly increase power and cost savings for the data center.